A modern user of computing devices will often have more than one kind of computing device. It is not uncommon for a user to regularly use a smartphone, a tablet, a laptop, a workstation, a smart television, and so on. Although these devices are often at least marginally functional for handling the varying types of objects a user may encounter (e.g., videos, pictures, audio, addresses, phone numbers, contacts, calendar entries, hyperlinks), different types of end-user devices will often have different strengths that make them better suited for handling certain objects of particular types. For example, end-user devices with large screens may be better-suited for watching high-definition video, whereas more portable devices may be better-suited for GPS-based navigation. Some devices may not be able to handle certain types of objects at all. For example, it is presently atypical for a television to have the ability to make phone calls or handle calendar entries, and only some smart televisions can handle hyperlinks.
Switching between these end-user devices in order to make best use of their strengths is often a hassle. For example, a user may encounter a phone number on their workstation, but want to dial the number with their smartphone. In such a situation, a user will often have to manually enter the phone number into their smartphone while reading the number off of their workstation screen. Similarly, a user may encounter an address on their tablet, but wish to navigate to that address using their GPS device. In such a situation, a user may have to manually enter the address into their GPS while reading the address off of their tablet screen.
This hassle can become quite obnoxious if a suitable device for performing the action is not obvious. For example, a user may wish to play a video on their smartphone, only to find that the high-definition video is too large to stream, decode or store locally, for playback. Such a user may then attempt to play the video on their tablet, only to find that their tablet lacks the appropriate codec to decode the video. Thus, the user may attempt to play the video on their smart television, only to find that their smart television does not have a media player app built-in. By the time the user discovers that their workstation has the capability to adequately handle the video, the user will have wasted a significant amount of time experimenting with their other devices.
Even when a user is able to find a device to support the video quickly, the device they find first may be less than optimal. For example, after discovering that their smartphone is unable to play a video file, the user may attempt to play the video on a tablet which supports playback, but lacks the processing resources to render the video smoothly.
Accordingly, a need exists for devices that will collaborate to handle objects encountered by the user in order to make best use of their collective strengths, while mitigating the impact to the user caused by their individual weaknesses.